#ifndef BASEMODEL_JSONRPC_RESPONSES_H
#define BASEMODEL_JSONRPC_RESPONSES_H

#include "../common.h"

// 最大结果数据大小定义
#define MAX_RESULT_SIZE 1024

// JSON-RPC 2.0 标准错误格式
typedef struct {
    double code;                // 错误代码（标准错误代码或自定义代码）
    error_msg_t message;        // 错误信息的简短描述
    bool has_data;              // 是否包含详细错误信息
    string_t data;              // 可选的错误详细信息
} jsonrpc_error_t;

// JSON-RPC 2.0 标准响应格式
typedef struct {
    jsonrpc_version_t jsonrpc;  // JSON-RPC协议版本，固定为JSONRPC_VERSION_2_0
    double id;                  // 请求ID，用于匹配对应的请求
    bool has_result;            // 是否包含结果（与has_error互斥）
    char result[MAX_RESULT_SIZE]; // 成功时返回的结果数据（JSON字符串格式）
    bool has_error;             // 是否包含错误（与has_result互斥）
    jsonrpc_error_t error;      // 失败时返回的错误信息
} jsonrpc_response_t;

#endif // BASEMODEL_JSONRPC_RESPONSES_H
